لایه TCP

لایه TCP:

پروتوکل کنترل کننده انتقال داده (TCP) اطلاعات اتصال را به بسته می افزاید.
TCP تضمین می کند که داده ها صحیح و سالم ارسال می شوند و اگر در بین مسیر داده دچار مشکل شود فرستنده یک پیام خطا دریافت می کند. در هر اتصال یا TCP session بسته داده حاوی اطلاعاتی در رابطه با ایجاد اتصال است. همین که اتصال برقرار شد برنامه تحت شبکه دیگر نیازی به کسب اطلاع در مورد بسته های گمشده یا خراب شده در حین انتقال بین ادوات شبکه را ندارد.
TCP header دارای بخش های گوناگونی است که هر کدام با عمل خاص در اتصال TCP ارتباط دارند. بعضی از آنها عبارتند از :
الف) تمیز دادن چندین اتصال بین دستگاه ها ( توسط شماره پورت مبدا و مقصد)
ب) پیگیری ترتیب بسته ها یا تقاضای ارسال مجدد بسته ها گم شده(توسط شماره ترتیب یاsequence و شماره acknowledgment)
ج) برقراری و قطع اتصال بین دستگاه ها(کامپیوترها) برای ارسال داده ( توسط فلگهای TCP)

شماره پورت برنامه های TCP:

TCP از پورت برای مشخص کردن تک تک اتصال های TCP برای یک کارت شبکه استفاده می کند.
برای اینکه شما بتوانید با کامپیوتر دیگری در شبکه اتصال برقرار کنند به دو چیز نیازمندیم

۱-آدرس IP کامپیوتر مقصد

۲- شماره پورت از نوع TCP برای برنامه کامپیوتر مقصد
بگذارید این دو را با مثالی روشن کنیم :
فرض کنید شما می خواهید برای کسی نامه ارسال کنید ، در ابتدا باید آدرس خانه آن شخص را داشته باشید( همان شماره IP) حال که نامه به مقصد رسید از روی نامی که شما روی پاکت نوشته اید تضمین می شود که نامه باید بدست چه کسی برسد( که این همان شماره پورت است)
به این معنا که وقتی بسته داده به کامپیوتر مقصد رسید در آنجا باید تعیین شود که این بسته متعلق به کدام نرم افزار است. در نظر بگیرید هنگامی که بسته داده به کامپیوتر شما می رسد چندین نرم افزار در حال اجرا منتظر بسته داده باشند. در این شرایط این شماره port است که تعیین میکند بسته داده باید به کدام نرم افزار تحویل داده شود.
کامپیوتر A دو نرم افزار server را اجرا می کنند که منتظر بسته هایی هستند که از Client ها ارسال شده اند یکی از برنامه ها شماره پورت ۸۰۰۰ و دیگری شماره پورت ۹۰۰۰ را دارد کامپیوتر b یک client است که می خواهد با برنامه روی server اتصال برقرار کند. برای کامپیوتر client نیز لازم است که به یک شماره پورت الحاق شود ولی این شماره مهم نیست(چرا؟)
جواب چرا : اگر نخواهد بسته ای از سرور دریافت کند مهم نیست در غیر اینصورت server از اطلاعات بسته ای که از client دریافت کرده شماره IP و port ان client را بدست آورده و داده های درخواستی را به آن ها ارسال می کند.
نکته : به ترکیب IP و port یک endpoint می گویند.
جدول زیر لیستی از برخی شماره های پورت TCP می باشد.
برای مثال پورت ۸۰ مخصوص http است نرم افزار Internet Explorer روی این پورت منتظر دریافت داده مد باشد.
منبع:http://www.academist.ir